//
//  QKRect.m
//  1.以5s为标准 ————》 320 * 568  小：320*480 大1：375*667 大2：414*736
//  2.比例缩放（x,y,width,height）等比放大或者缩小 这个就要考虑图片的变形问题了，需要三套图片
//  3.x,y等比缩放,保持原有的width和height【这样在大屏幕的手机上面会有比较多的留白】
//  4.屏幕分块布局
//  4.1 屏幕分为3块： 顶部（返回和标题） +  中部（正文） + 底部（快速导航）
//  4.1.1:顶部显示标题和左右导航按钮，这部分和底部的

#import "QKRect.h"

@implementation QKRect


//是不是iphone 5 如果是就不用缩放了
static bool isIphone5;

//图形不变形缩放系数 以iphone5 为标准（iphone 5 不缩放）
static   float  scaling_index;
#define __IPHONE4_INDEX  0.845070
#define __IPHONE5_INDEX  1.000000
#define __IPHONE6_INDEX  1.171875
#define __IPHONE6P_INDEX 1.293750
#define __IPADNOR_INDEX  1.802817

//纵向压缩比
static float  height_index;
#define __IPHONE4_HEIGHT  0.845070
#define __IPHONE5_HEIGHT  1.000000
#define __IPHONE6_HEIGHT  1.174296
#define __IPHONE6P_HEIGHT 1.293750
#define __IPADNOR_HEIGHT  1.802817

//横向压缩比
static float  width_index;
#define __IPHONE4_WIDTH  1.000000
#define __IPHONE5_WIDTH  1.000000
#define __IPHONE6_WIDTH  1.171875
#define __IPHONE6P_WIDTH 1.295775
#define __IPADNOR_WIDTH  2.400000




#pragma mark - 判断设备类型 确定缩放比例
+ (void)initRect
{
    //判断当前的设备
    CGSize size = [[UIScreen mainScreen] bounds].size;
    
    //先以NO 初始化变量
    isIphone5 = NO;
    
    if (size.width == 320)
    {
        if (size.height == 480)
        {
            //iphone4
            scaling_index = __IPHONE4_INDEX;
            height_index  = __IPHONE4_HEIGHT;
            width_index   = __IPHONE4_WIDTH;
            
        }else
        {
            //iphone 5
            scaling_index = __IPHONE5_INDEX;
            height_index  = __IPHONE5_HEIGHT;
            width_index   = __IPHONE5_WIDTH;
            
            //是IPhone 5 不需要计算
            isIphone5 = YES;
            
        }
        
    }else if(size.width == 375 && size.height == 667)
    {
        //iphone 6
        scaling_index = __IPHONE6_INDEX;
        height_index  = __IPHONE6_HEIGHT;
        width_index   = __IPHONE6_WIDTH;

        
    }else if(size.width == 414 && size.height == 736)
    {
        //iphone 6plus
        scaling_index = __IPHONE6P_INDEX;
        height_index  = __IPHONE6P_HEIGHT;
        width_index   = __IPHONE6P_WIDTH;

        
    }else if(size.width == 768 && size.height == 1024)
    {
        //ipad
        scaling_index = __IPADNOR_INDEX;
        height_index  = __IPADNOR_HEIGHT;
        width_index   = __IPADNOR_WIDTH;

        
    }else
    {
        //苹果更新了设备
    }
}

#pragma mark - 图形比例缩放
/**
 *  视图的位置等比缩放+图形不变形缩放
 *
 *  @param rect 视图在iphone 5中的位置和大小
 *
 *  @return 以iphone 5为标准缩放后的视图位置和大小
 */
+ (CGRect)scareling:(CGRect )rect
{
    if(isIphone5)
    {
        return rect;
        
    }else
    {
        CGRect resultRect;
        
        //起点位置按照纵横比值各自计算，可以保持相对比例不变
        resultRect.origin.x = rect.origin.x * width_index;
        resultRect.origin.y = rect.origin.y * height_index;
        
        //宽高等比缩放
        resultRect.size.width  = rect.size.width  * scaling_index;
        resultRect.size.height = rect.size.height * scaling_index;
        
        
        return resultRect;
        
    }
   
}

#pragma mark - 视图完全缩放 
/**
 *  位置和视图的大小依据宽高比分别缩放
 *
 *  @param rect iphone 5 中所需要的视图位置和大小
 *
 *  @return 处理后的视图大小
 */
+ (CGRect)fullScare:(CGRect )rect
{
    CGRect resultRect = rect;
    
    if (isIphone5)
    {
        //是iphone5 就不用算了
        return rect;
        
        
    }else
    {
        //x 坐标依照横向比值缩放
        resultRect.origin.x = resultRect.origin.x * width_index;
        //y 坐标依照纵向比值缩放
        resultRect.origin.y = resultRect.origin.y * height_index;
        
        //宽高依照各自的比值缩放
        resultRect.size.width  = resultRect.size.width  * width_index;
        resultRect.size.height = resultRect.size.height * height_index;
        
        return resultRect;
    }
    
 
}



@end

//